package com.etc.entity;

import java.util.ArrayList;
import java.util.List;

public class ArticleExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public ArticleExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andAidIsNull() {
            addCriterion("aid is null");
            return (Criteria) this;
        }

        public Criteria andAidIsNotNull() {
            addCriterion("aid is not null");
            return (Criteria) this;
        }

        public Criteria andAidEqualTo(Integer value) {
            addCriterion("aid =", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidNotEqualTo(Integer value) {
            addCriterion("aid <>", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidGreaterThan(Integer value) {
            addCriterion("aid >", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidGreaterThanOrEqualTo(Integer value) {
            addCriterion("aid >=", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidLessThan(Integer value) {
            addCriterion("aid <", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidLessThanOrEqualTo(Integer value) {
            addCriterion("aid <=", value, "aid");
            return (Criteria) this;
        }

        public Criteria andAidIn(List<Integer> values) {
            addCriterion("aid in", values, "aid");
            return (Criteria) this;
        }

        public Criteria andAidNotIn(List<Integer> values) {
            addCriterion("aid not in", values, "aid");
            return (Criteria) this;
        }

        public Criteria andAidBetween(Integer value1, Integer value2) {
            addCriterion("aid between", value1, value2, "aid");
            return (Criteria) this;
        }

        public Criteria andAidNotBetween(Integer value1, Integer value2) {
            addCriterion("aid not between", value1, value2, "aid");
            return (Criteria) this;
        }

        public Criteria andAUidIsNull() {
            addCriterion("a_uid is null");
            return (Criteria) this;
        }

        public Criteria andAUidIsNotNull() {
            addCriterion("a_uid is not null");
            return (Criteria) this;
        }

        public Criteria andAUidEqualTo(Integer value) {
            addCriterion("a_uid =", value, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidNotEqualTo(Integer value) {
            addCriterion("a_uid <>", value, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidGreaterThan(Integer value) {
            addCriterion("a_uid >", value, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidGreaterThanOrEqualTo(Integer value) {
            addCriterion("a_uid >=", value, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidLessThan(Integer value) {
            addCriterion("a_uid <", value, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidLessThanOrEqualTo(Integer value) {
            addCriterion("a_uid <=", value, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidIn(List<Integer> values) {
            addCriterion("a_uid in", values, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidNotIn(List<Integer> values) {
            addCriterion("a_uid not in", values, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidBetween(Integer value1, Integer value2) {
            addCriterion("a_uid between", value1, value2, "aUid");
            return (Criteria) this;
        }

        public Criteria andAUidNotBetween(Integer value1, Integer value2) {
            addCriterion("a_uid not between", value1, value2, "aUid");
            return (Criteria) this;
        }

        public Criteria andAscoreIsNull() {
            addCriterion("ascore is null");
            return (Criteria) this;
        }

        public Criteria andAscoreIsNotNull() {
            addCriterion("ascore is not null");
            return (Criteria) this;
        }

        public Criteria andAscoreEqualTo(Integer value) {
            addCriterion("ascore =", value, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreNotEqualTo(Integer value) {
            addCriterion("ascore <>", value, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreGreaterThan(Integer value) {
            addCriterion("ascore >", value, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreGreaterThanOrEqualTo(Integer value) {
            addCriterion("ascore >=", value, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreLessThan(Integer value) {
            addCriterion("ascore <", value, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreLessThanOrEqualTo(Integer value) {
            addCriterion("ascore <=", value, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreIn(List<Integer> values) {
            addCriterion("ascore in", values, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreNotIn(List<Integer> values) {
            addCriterion("ascore not in", values, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreBetween(Integer value1, Integer value2) {
            addCriterion("ascore between", value1, value2, "ascore");
            return (Criteria) this;
        }

        public Criteria andAscoreNotBetween(Integer value1, Integer value2) {
            addCriterion("ascore not between", value1, value2, "ascore");
            return (Criteria) this;
        }

        public Criteria andAstatusIsNull() {
            addCriterion("astatus is null");
            return (Criteria) this;
        }

        public Criteria andAstatusIsNotNull() {
            addCriterion("astatus is not null");
            return (Criteria) this;
        }

        public Criteria andAstatusEqualTo(Boolean value) {
            addCriterion("astatus =", value, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusNotEqualTo(Boolean value) {
            addCriterion("astatus <>", value, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusGreaterThan(Boolean value) {
            addCriterion("astatus >", value, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusGreaterThanOrEqualTo(Boolean value) {
            addCriterion("astatus >=", value, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusLessThan(Boolean value) {
            addCriterion("astatus <", value, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusLessThanOrEqualTo(Boolean value) {
            addCriterion("astatus <=", value, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusIn(List<Boolean> values) {
            addCriterion("astatus in", values, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusNotIn(List<Boolean> values) {
            addCriterion("astatus not in", values, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusBetween(Boolean value1, Boolean value2) {
            addCriterion("astatus between", value1, value2, "astatus");
            return (Criteria) this;
        }

        public Criteria andAstatusNotBetween(Boolean value1, Boolean value2) {
            addCriterion("astatus not between", value1, value2, "astatus");
            return (Criteria) this;
        }

        public Criteria andApageviewIsNull() {
            addCriterion("apageview is null");
            return (Criteria) this;
        }

        public Criteria andApageviewIsNotNull() {
            addCriterion("apageview is not null");
            return (Criteria) this;
        }

        public Criteria andApageviewEqualTo(Integer value) {
            addCriterion("apageview =", value, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewNotEqualTo(Integer value) {
            addCriterion("apageview <>", value, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewGreaterThan(Integer value) {
            addCriterion("apageview >", value, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewGreaterThanOrEqualTo(Integer value) {
            addCriterion("apageview >=", value, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewLessThan(Integer value) {
            addCriterion("apageview <", value, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewLessThanOrEqualTo(Integer value) {
            addCriterion("apageview <=", value, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewIn(List<Integer> values) {
            addCriterion("apageview in", values, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewNotIn(List<Integer> values) {
            addCriterion("apageview not in", values, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewBetween(Integer value1, Integer value2) {
            addCriterion("apageview between", value1, value2, "apageview");
            return (Criteria) this;
        }

        public Criteria andApageviewNotBetween(Integer value1, Integer value2) {
            addCriterion("apageview not between", value1, value2, "apageview");
            return (Criteria) this;
        }

        public Criteria andAimageIsNull() {
            addCriterion("aimage is null");
            return (Criteria) this;
        }

        public Criteria andAimageIsNotNull() {
            addCriterion("aimage is not null");
            return (Criteria) this;
        }

        public Criteria andAimageEqualTo(String value) {
            addCriterion("aimage =", value, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageNotEqualTo(String value) {
            addCriterion("aimage <>", value, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageGreaterThan(String value) {
            addCriterion("aimage >", value, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageGreaterThanOrEqualTo(String value) {
            addCriterion("aimage >=", value, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageLessThan(String value) {
            addCriterion("aimage <", value, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageLessThanOrEqualTo(String value) {
            addCriterion("aimage <=", value, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageLike(String value) {
            addCriterion("aimage like", value, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageNotLike(String value) {
            addCriterion("aimage not like", value, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageIn(List<String> values) {
            addCriterion("aimage in", values, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageNotIn(List<String> values) {
            addCriterion("aimage not in", values, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageBetween(String value1, String value2) {
            addCriterion("aimage between", value1, value2, "aimage");
            return (Criteria) this;
        }

        public Criteria andAimageNotBetween(String value1, String value2) {
            addCriterion("aimage not between", value1, value2, "aimage");
            return (Criteria) this;
        }

        public Criteria andAAdidIsNull() {
            addCriterion("a_adid is null");
            return (Criteria) this;
        }

        public Criteria andAAdidIsNotNull() {
            addCriterion("a_adid is not null");
            return (Criteria) this;
        }

        public Criteria andAAdidEqualTo(Integer value) {
            addCriterion("a_adid =", value, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidNotEqualTo(Integer value) {
            addCriterion("a_adid <>", value, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidGreaterThan(Integer value) {
            addCriterion("a_adid >", value, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidGreaterThanOrEqualTo(Integer value) {
            addCriterion("a_adid >=", value, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidLessThan(Integer value) {
            addCriterion("a_adid <", value, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidLessThanOrEqualTo(Integer value) {
            addCriterion("a_adid <=", value, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidIn(List<Integer> values) {
            addCriterion("a_adid in", values, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidNotIn(List<Integer> values) {
            addCriterion("a_adid not in", values, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidBetween(Integer value1, Integer value2) {
            addCriterion("a_adid between", value1, value2, "aAdid");
            return (Criteria) this;
        }

        public Criteria andAAdidNotBetween(Integer value1, Integer value2) {
            addCriterion("a_adid not between", value1, value2, "aAdid");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}